package persistence.dao;

import java.util.Set;

import persistence.dto.ProductDTO;
import persistence.dto.ProductGroupDTO;

public interface IProductGroupsDAO
{
	/**
	 * 
	 * @param parentID the id of the parent storage unit or product group
	 * @return returns a set containing all of the children productGroups
	 */
	public Set<ProductGroupDTO> getAllChildrenProductGroups(int parentID);
	
	/**
	 * adds persists the productGroup to memory
	 * @param productGroupDTO - the DTO object containing the information needed for transaction
	 * @return returns the ID of the newly added product group, or -1 if failure
	 */
	public int add(ProductGroupDTO productGroupDTO);
	
	/**
	 * updates the productGroup in memory
	 * @param productGroupDTO
	 * @return returns true if successful, false otherwise
	 */
	public boolean edit(ProductGroupDTO productGroupDTO);
	
	/**
	 * removes the productGroup from memory
	 * @param productGroupDTO the productGroup to be removed
	 * @return returns true if successful, false otherwise
	 */
	public boolean remove(ProductGroupDTO productGroupDTO);
}
